package d8_bs;

import java.io.PrintStream;
import java.net.Socket;

//用最简单的方式,创建线程
public class ServerReaderThread extends Thread {

    //2、获取各自的管道
    private Socket socket;

    public ServerReaderThread(Socket socket) {
        this.socket = socket;
    }

    //3、利用构造器,进行初始化-->将接通的管道传送过来


    //1、要记性读数据的逻辑,写在里面
    @Override
    public void run() {
        try {
            //这个线程接受到这个管道之后,要马上为这个管道推送一个网页,客户端是Browser(浏览器)---->这个地方,不建议大家用特殊数据输出流
            //打印流,一行一行的打
           //给浏览器当前这个socket管道响应一个网页数据回去展示
            PrintStream ps = new PrintStream(socket.getOutputStream());
            ps.println("HTTP/1.1 200 OK");
            ps.println("Content-Type:text/html;charset=UTF-8");
            ps.println();
            ps.println("<div style='color:#ff00ff;font-size:120px;text-align:center'>");
            ps.println("我有一剑,可开天,辟地,斩妖,除魔");
            ps.println("</div>");
            //因为网页的请求是段连接,并且底层是基于TCP(有四次挥手-->保证数据的收发完毕)
            //可以直接进行关闭流
            ps.close();
            socket.close();



            //为什么要关闭流
            //因为,浏览器,都是短连接,一响应完连接就会断掉
        } catch (Exception e) {
            //追踪对方的ip,是否下线
            System.out.println(socket.getInetAddress().getHostAddress() + ":" + socket.getPort() + "下线了~~");
        }

    }

    //原理,就是java自己开发了,服务端网站,里面内嵌了网站,然后通过网址进行访问,就可以访问到这个网页了
}
